include和extend是兩種不同的方式來引入模組(module)的。它們有不同的作用和影響:
include:
include時,模組中的方法會變成實例方法,可以被類別的實例(物件)調用。include,該類別的實例將能夠使用模組中的方法。include通常用於將共享的功能添加到多個類別中,以便它們可以共享相同的方法。module MyModule
  def hello
    puts "Hello from MyModule!"
  end
end
class MyClass
  include MyModule
end
obj = MyClass.new
obj.hello # 这里可以调用MyModule中的方法
在這個例子中,MyClass類別包含了MyModule模組,因此它的實例可以呼叫MyModule中的hello方法。
extend:
extend時,模組中的方法會變成類別方法,只能被該類別本身調用,不能被該類別的實例(物件)調用。extend,該類別本身可以使用模組中的方法,但該類別的實例不能。extend通常用於在類別級別添加功能,而不是在實例級別。module MyModule
  def hello
    puts "Hello from MyModule!"
  end
end
class MyClass
  extend MyModule
end
MyClass.hello # 这里可以调用MyModule中的方法,但不能通过实例调用
在這個例子中,MyClass類別使用extend將MyModule模組的方法加入為類別方法,因此只有MyClass類別本身可以呼叫hello方法,而不是類別的實例。